BiTNode * nearest_ancestor(BiTree root, BiTNode *p, BiTNode *q){
    Stack S1,S2,*s1=&S1,*s2=&S2;
    init_stack(s1);
    init_stack(s2);
    path(root,p,s1);
    path(root,q,s2);
    if(s1->top>=s2->top){
        s1->top=s2->top;
    }else{
        s2->top=s1->top;
    }
    while(is_empty(s1)!=true){
        ElemType p1=NULL,q1=NULL;
        pop(s1,&p1);
        pop(s2,&q1);
        if(p1==q1) return p1;
    }
    return NULL;
    
}
